#-*- encoding: utf-8 -*-

import sqlite3
from Leitura import Leitura


class Estatisticas:
    
    
    def obter_informacao_bd(self, ano):
        
        conn = sqlite3.connect('Inscritos.db')
        cursor = conn.cursor()
        cursor.execute('''SELECT * FROM ano_{0} '''.format(ano))
        dados_bd = cursor.fetchall()
        conn.close()
        return dados_bd   
    
    
    def obter_cursos_estabelecimento_unidade_organica(self, ano, estabelecimento, unidade_organica):

        dados_bd = self.obter_informacao_bd(ano)
        resultado_estatistica_1 = []
        for l in range(0, len(dados_bd)):
            if 'Computadores' in dados_bd[l][4] or u'Informática' in dados_bd[l][4] or u'informática' in dados_bd[l][4]:
                if dados_bd[l][1] == estabelecimento:
                    if dados_bd[l][2] == unidade_organica:
                        if dados_bd[l][6] > 0:
                            resultado_estatistica_1.append(dados_bd[l][4].encode('utf-8'))
                            pass
                        pass
                    pass
                pass
            pass
        return resultado_estatistica_1
    
    
    
    def obter_total_alunos_curso(self, ano, curso):
        
        dados_bd = self.obter_informacao_bd(ano)
        total_alunos = 0
        
        for l in range(0, len(dados_bd)):
            if dados_bd[l][4] == curso:
                total_alunos = total_alunos + dados_bd[l][6]
                pass
            pass
        resultado_estatistica_2 = total_alunos
        return resultado_estatistica_2
    
    
    
    def obter_cursos_nivel_formacao(self, ano, nivel_formacao):

        dados_bd = self.obter_informacao_bd(ano)
        resultado_estatistica_3 = []
        for l in range(0, len(dados_bd)):
            if 'Computadores' in dados_bd[l][4] or u'Informática' in dados_bd[l][4] or u'informática' in dados_bd[l][4]:
                if dados_bd[l][3] == nivel_formacao:
                    if dados_bd[l][6] > 0:
                        resultado_estatistica_3.append(dados_bd[l][4].encode('utf-8'))   
                        pass
                    pass
                pass
            pass
        return len(resultado_estatistica_3)
        
    
    
    
    def obter_total_alunos_nivel_formacao(self, ano, nivel_formacao):
        
        dados_bd = self.obter_informacao_bd(ano)
        total_alunos = 0
        for l in range(0, len(dados_bd)):
            if 'Computadores' in dados_bd[l][4] or u'Informática' in dados_bd[l][4] or u'informática' in dados_bd[l][4]:
                if dados_bd[l][3] == nivel_formacao:
                    total_alunos = total_alunos + dados_bd[l][6] 
                    pass
                pass
            pass
        resultado_estatistica_4 = total_alunos
        return resultado_estatistica_4
    
    
    
    def obter_estabelecimento_ensino(self, ano):
        
        dados_bd = self.obter_informacao_bd(ano)
        temp = []
        for l in range(0, len(dados_bd)):
            if 'Computadores' in dados_bd[l][4] or u'Informática' in dados_bd[l][4] or u'informática' in dados_bd[l][4]:
                if dados_bd[l][6] > 0:
                    temp.append(dados_bd[l][1].encode('utf-8'))
                    pass
                pass
            pass
        
        estabelecimento_ensino = list(set(temp))
        return estabelecimento_ensino
    
    
    
    def obter_unidade_organica(self, ano, estabelecimento):
        
        dados_bd = self.obter_informacao_bd(ano)
        temp = []
        for l in range(0, len(dados_bd)):
            if 'Computadores' in dados_bd[l][4] or u'Informática' in dados_bd[l][4] or u'informática' in dados_bd[l][4]:
                if dados_bd[l][1] == estabelecimento:
                    if dados_bd[l][6] > 0:
                        temp.append(dados_bd[l][2].encode('utf-8'))
                        pass
                    pass
                pass
            pass
        pass
     
        unidade_organica = list(set(temp))
        return unidade_organica   
    
    
    
    def obter_curso(self):
        
        ler = Leitura()
        anos = ler.obter_anos()
        for ano in anos:
            dados_bd = self.obter_informacao_bd(ano)
            temp = []
            for l in range(0, len(dados_bd)):
                if 'Computadores' in dados_bd[l][4] or u'Informática' in dados_bd[l][4] or u'informática' in dados_bd[l][4]:
                    temp.append(dados_bd[l][4].encode('utf-8'))
                    pass
                pass
            pass       
        cursos = list(set(temp))
        return cursos  
    
    
    
    
    def obter_nivel_de_formacao_curso(self):
        
        ler = Leitura()
        anos = ler.obter_anos()
        for ano in anos:
            dados_bd = self.obter_informacao_bd(ano)
            temp = []
            
            for l in range(0, len(dados_bd)):
                if 'Computadores' in dados_bd[l][4] or u'Informática' in dados_bd[l][4] or u'informática' in dados_bd[l][4]:
                    if dados_bd[l][6] > 0:
                        temp.append(dados_bd[l][3].encode('utf-8'))   
                        pass
                    pass
                pass
            pass
        nivel_formacao = list(set(temp))
        return nivel_formacao
    
    
    
    def obter_nivel_de_formacao(self):
        
        ler = Leitura()
        anos = ler.obter_anos()
        for ano in anos:
            dados_bd = self.obter_informacao_bd(ano)
            temp = []
            for l in range(0, len(dados_bd)):
                if 'Computadores' in dados_bd[l][4] or u'Informática' in dados_bd[l][4] or u'informática' in dados_bd[l][4]:
                    temp.append(dados_bd[l][3].encode('utf-8'))
                    pass
                pass
            pass
        nivel_formacao = list(set(temp))
        return nivel_formacao
    
    pass
             
    
        
    
    
#obj = Estatisticas()

#for x in range (1995, 2011):
    #string1 = str(x)
    #string2 = str(x + 1)
    #b= string1 + "_" + string2[2]+string2[3]
    ##obj.obter_cursos_estabelecimento_unidade_organica(b)
    ##obj.obter_total_alunos(b)
#obj.obter_cursos_nivel_formacao("1995_96", "B - Bacharelato")
    #pass
#print obj.obter_total_alunos_curso("1995_96", u'2092 - Computadores no Ensino')
